﻿#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int SLDataType;
typedef struct SListNode
{
	SLDataType data;  //数据域
	struct SListNode* next; // 指针域,存放下一个节点的地址
}SLTNode;

//打印单链表
void SLTNodePrint(SLTNode* phead);
//尾插
void SLTNodePushBack(SLTNode** pphead, SLDataType x);
//头插
void SLTNodePushFront(SLTNode** pphead, SLDataType x);
//头删
void SLTNodePopFront(SLTNode** pphead);
//尾删
void SLTNodePopBack(SLTNode** pphead);
//查找
SLTNode* SLTFind(SLTNode* phead, SLDataType x);
//在指定位置之前插⼊数据
void SLTInsert(SLTNode** pphead, SLTNode* pos, SLDataType x);
//在指定位置之后插⼊数据
void SLTInsertAfter(SLTNode* pos, SLDataType x);
//删除指定位置的数据
void SLTDel(SLTNode** pphead, SLTNode* pos);
//删除指定位置之后的数据
void SLTDelAfter(SLTNode* pos);
//销毁链表
void SListDesTroy(SLTNode** pphead);
